﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Media;
using System.Collections.ObjectModel;
using System.Data;
using System.Windows.Media.Imaging;
using System.ComponentModel;
using System.Diagnostics;
using System.Windows.Controls;
using System.Globalization;
using produccion.modelo;
using produccion.AccesoDatos;
using produccion.clases;
using produccion.modulos;
using System.Windows.Input;
using System.Collections.Specialized;

namespace produccion.vistamodelo
{
    public class VMRecibirdePlanta : ViewModelBase, IDataErrorInfo
    {
        #region Campos
        private MDOgeneral _mod = new MDOgeneral();
        private MRecibirdePlanta _rec = new MRecibirdePlanta();
        #endregion

        #region Constructor
        public VMRecibirdePlanta()
        {
            try
            {
                consultarGarantias();
                if (MDOgeneral.conexion == null || MDOgeneral.conexion.State == ConnectionState.Closed)
                {
                    MDOgeneral.conectar();
                }
                strTituloVentana = "Recibir de Planta - Usuario: " + MDOgeneral.usuario + " - [FRMRecibirdePlanta]";
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }
        #endregion

        #region Propiedades
        private string _strTituloVentana;
        public string strTituloVentana
        {
            get { return _strTituloVentana; }
            set { _strTituloVentana = value; base.OnPropertyChanged("strTituloVentana"); }
        }

        private string _strNumeroOrden;
        public string strNumeroOrden
        {
            get { return _strNumeroOrden; }
            set
            {
                _strNumeroOrden = value;
                base.OnPropertyChanged("strNumeroOrden");
                try
                {

                    if (strNumeroOrden != null)
                    {
                        int numXX = 0;
                        if (strNumeroOrden.Length > 5)
                        {
                            if (buscarOrden())
                            {
                                List<VMDePlanta> all = (from lis in lisdeplanta where lis.logSeleccionado.Equals(true) select lis).ToList();
                                foreach (VMDePlanta xx in all)
                                {
                                    numXX = numXX + 1;
                                }
                                lisdeplanta.Clear();
                                lisdeplanta = new ObservableCollection<VMDePlanta>(all);
                                cargarCampos2();
                            }
                        }
                        else
                        {
                            if (lisdeplanta.Count == 1)
                            {
                                List<VMDePlanta> all = (from lis in listado select new VMDePlanta(lis)).ToList();
                                foreach (VMDePlanta xx in all)
                                {
                                    xx.logSeleccionado = false;
                                }
                                lisdeplanta.Clear();
                                lisdeplanta = new ObservableCollection<VMDePlanta>(all);
                                limpiar();
                            }
                        }
                    }
                }
                catch (Exception ex) { MessageBox.Show(ex.Message); }
            }
        }

        private string _strCodigoCliente;
        public string strCodigoCliente
        {
            get { return _strCodigoCliente; }
            set { _strCodigoCliente = value; base.OnPropertyChanged("strCodigoCliente"); }
        }

        private string _strNombreCliente;
        public string strNombreCliente
        {
            get { return _strNombreCliente; }
            set { _strNombreCliente = value; base.OnPropertyChanged("strNombreCliente"); }
        }

        private string _strNumeroReparacion;
        public string strNumeroReparacion
        {
            get { return _strNumeroReparacion; }
            set { _strNumeroReparacion = value; base.OnPropertyChanged("strNumeroReparacion"); }
        }

        private Int32 _numConsecutivo;
        public Int32 numConsecutivo
        {
            get { return _numConsecutivo; }
            set { _numConsecutivo = value; base.OnPropertyChanged("numConsecutivo"); }
        }

        private string _strReferencia;
        public string strReferencia
        {
            get { return _strReferencia; }
            set { _strReferencia = value; base.OnPropertyChanged("strReferencia"); }
        }

        private string _strNombreReferencia;
        public string strNombreReferencia
        {
            get { return _strNombreReferencia; }
            set { _strNombreReferencia = value; base.OnPropertyChanged("strNombreReferencia"); }
        }

        private string _strColor;
        public string strColor
        {
            get { return _strColor; }
            set { _strColor = value; base.OnPropertyChanged("strColor"); }
        }

        private string _strNombreColor;
        public string strNombreColor
        {
            get { return _strNombreColor; }
            set { _strNombreColor = value; base.OnPropertyChanged("strNombreColor"); }
        }

        private string _strTalla;
        public string strTalla
        {
            get { return _strTalla; }
            set { _strTalla = value; base.OnPropertyChanged("strTalla"); }
        }

        private string _strTipo;
        public string strTipo
        {
            get { return _strTipo; }
            set { _strTipo = value; base.OnPropertyChanged("strTipo"); }
        }

        private DateTime _dtmFechaRecibido;
        public DateTime dtmFechaRecibido
        {
            get { return _dtmFechaRecibido; }
            set { _dtmFechaRecibido = value; base.OnPropertyChanged("dtmFechaRecibido"); }
        }

        private string _strDaño1;
        public string strDaño1
        {
            get { return _strDaño1; }
            set { _strDaño1 = value; base.OnPropertyChanged("strDaño1"); }
        }

        private string _strDaño2;
        public string strDaño2
        {
            get { return _strDaño2; }
            set { _strDaño2 = value; base.OnPropertyChanged("strDaño2"); }
        }

        private string _strDaño3;
        public string strDaño3
        {
            get { return _strDaño3; }
            set { _strDaño3 = value; base.OnPropertyChanged("strDaño3"); }
        }

        private string _strDaño4;
        public string strDaño4
        {
            get { return _strDaño4; }
            set { _strDaño4 = value; base.OnPropertyChanged("strDaño4"); }
        }

        private string _strDaño5;
        public string strDaño5
        {
            get { return _strDaño5; }
            set { _strDaño5 = value; base.OnPropertyChanged("strDaño5"); }
        }

        private string _strProceso1;
        public string strProceso1
        {
            get { return _strProceso1; }
            set { _strProceso1 = value; base.OnPropertyChanged("strProceso1"); }
        }

        private string _strProceso2;
        public string strProceso2
        {
            get { return _strProceso2; }
            set { _strProceso2 = value; base.OnPropertyChanged("strProceso2"); }
        }

        private string _strProceso3;
        public string strProceso3
        {
            get { return _strProceso3; }
            set { _strProceso3 = value; base.OnPropertyChanged("strProceso3"); }
        }

        private string _strProceso4;
        public string strProceso4
        {
            get { return _strProceso4; }
            set { _strProceso4 = value; base.OnPropertyChanged("strProceso4"); }
        }

        private string _strProceso5;
        public string strProceso5
        {
            get { return _strProceso5; }
            set { _strProceso5 = value; base.OnPropertyChanged("strProceso5"); }
        }

        private string _strObservaciones;
        public string strObservaciones
        {
            get { return _strObservaciones; }
            set { _strObservaciones = value; base.OnPropertyChanged("strObservaciones"); }
        }

        private ObservableCollection<VMDePlanta> _lisdeplanta = new ObservableCollection<VMDePlanta>();
        public ObservableCollection<VMDePlanta> lisdeplanta
        {
            get { return _lisdeplanta; }
            set { _lisdeplanta = value; base.OnPropertyChanged("lisdeplanta"); }
        }

        private VMDePlanta _seldeplanta;
        public VMDePlanta seldeplanta
        {
            get { return _seldeplanta; }
            set { _seldeplanta = value; base.OnPropertyChanged("seldeplanta"); }
        }

        private int _numIndex = 0;
        public int numIndex
        {
            get { return _numIndex; }
            set { _numIndex = value; base.OnPropertyChanged("numIndex"); }
        }

        private List<MRecibirdePlanta> _listado = new List<MRecibirdePlanta>();
        public List<MRecibirdePlanta> listado
        {
            get { return _listado; }
            set { _listado = value; base.OnPropertyChanged("listado"); }
        }

        private DateTime _dtmFecha = DateTime.Now;
        public DateTime dtmFecha
        {
            get { return _dtmFecha; }
            set { _dtmFecha = value; base.OnPropertyChanged("dtmFecha"); }
        }

        private VMvisorFotoReferencia _visorFotoReferencia = new VMvisorFotoReferencia();
        public VMvisorFotoReferencia visorFotoReferencia
        {
            get { return _visorFotoReferencia; }
            set { _visorFotoReferencia = value; base.OnPropertyChanged("visorFotoReferencia"); }
        }

        private MDOgeneral.mensaje _msn = new MDOgeneral.mensaje();
        public MDOgeneral.mensaje msn
        {
            get { return _msn; }
            set { _msn = value; base.OnPropertyChanged("msn"); }
        }

        #endregion

        #region Comandos
        
        RelayCommand _cmdSalir;
        public ICommand cmdSalir
        {
            get
            {
                if (_cmdSalir == null)
                {
                    _cmdSalir = new RelayCommand(Salir);
                }
                return _cmdSalir;
            }
        }

        RelayCommand _cmdDobleClic;
        public ICommand cmdDobleClic
        {
            get
            {
                if (_cmdDobleClic == null)
                {
                    _cmdDobleClic = new RelayCommand(r => dobleClic());
                }
                return _cmdDobleClic;
            }
        }

        RelayCommand _cmdGrabar;
        public ICommand cmdGrabar
        {
            get
            {
                if (_cmdGrabar == null)
                {
                    _cmdGrabar = new RelayCommand(r => grabar());
                }
                return _cmdGrabar;
            }
        }

        RelayCommand _cmdImprimir;
        public ICommand cmdImprimir
        {
            get
            {
                if (_cmdImprimir == null)
                {
                    _cmdImprimir = new RelayCommand(r => imprimir());
                }
                return _cmdImprimir;
            }
        }

        #endregion

        #region Metodos

        void dobleClic()
        {
            try
            {
                if (seldeplanta != null)
                {
                    desmarcar(seldeplanta.strNumeroOrden);
                    strNumeroOrden = seldeplanta.strNumeroOrden;
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        void consultarGarantias()
        {
            try
            {
                Mouse.OverrideCursor = Cursors.Wait;

                int numContador = 0;
                listado = _rec.listarReparaciones("P", "");

                List<VMDePlanta> all = (from lis in listado select new VMDePlanta(lis)).ToList();
                foreach (VMDePlanta xx in all)
                {
                    numContador = numContador + 1;
                }
                lisdeplanta.Clear();
                lisdeplanta = new ObservableCollection<VMDePlanta>(all);

                Mouse.OverrideCursor = Cursors.Arrow;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        Boolean buscarOrden()
        {
            Boolean logRetorno = false;
            try
            {
                numIndex = -1;
                foreach (VMDePlanta lis in lisdeplanta)
                {
                    numIndex = numIndex + 1;
                    if (lis.strNumeroOrden == strNumeroOrden)
                    {
                        lis.logSeleccionado = true;
                        logRetorno = true;
                        break;
                    }
                    else
                        lis.logSeleccionado = false;
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return logRetorno;
        }

        void desmarcar(string strNumero)
        {
            try
            {
                foreach (VMDePlanta lis in lisdeplanta)
                {
                    if (lis.strNumeroOrden==strNumero)
                        lis.logSeleccionado = true;
                    else
                        lis.logSeleccionado = false;
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        void cargarCampos2()
        {
            try
            {
                strNumeroReparacion = lisdeplanta[0].strNumeroReparacion;
                numConsecutivo = lisdeplanta[0].numConsecutivo;
                strCodigoCliente = lisdeplanta[0].strCodigoCliente;
                strNombreCliente = lisdeplanta[0].strNombreCliente;
                strReferencia = lisdeplanta[0].strReferencia;
                strNombreReferencia = lisdeplanta[0].strNombreReferencia;
                strColor = lisdeplanta[0].strColor;
                strNombreColor = lisdeplanta[0].strNombreColor;
                strTalla = lisdeplanta[0].strTalla;
                strTipo = lisdeplanta[0].strTipo;
                dtmFechaRecibido = lisdeplanta[0].dtmFechaRecibido;
                strDaño1 = lisdeplanta[0].strDaño1;
                strDaño2 = lisdeplanta[0].strDaño2;
                strDaño3 = lisdeplanta[0].strDaño3;
                strDaño4 = lisdeplanta[0].strDaño4;
                strDaño5 = lisdeplanta[0].strDaño5;
                strProceso1 = lisdeplanta[0].strProceso1;
                strProceso2 = lisdeplanta[0].strProceso2;
                strProceso3 = lisdeplanta[0].strProceso3;
                strProceso4 = lisdeplanta[0].strProceso4;
                strProceso5 = lisdeplanta[0].strProceso5;
                strObservaciones = lisdeplanta[0].strObservaciones;
                visorFotoReferencia.strCodigo = lisdeplanta[0].strReferencia;
                visorFotoReferencia.strColor = lisdeplanta[0].strColor;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        public void grabar()
        {
            try
            {

                MDOgeneral.spComando.CommandText = "SP_GRABARREPDEPLANTA";
                MDOgeneral.spComando.Connection = MDOgeneral.conexion;
                MDOgeneral.spComando.CommandType = CommandType.StoredProcedure;
                MDOgeneral.spComando.Parameters.Clear();

                //Input
                MDOgeneral.spComando.Parameters.Add("pva_nroord", Oracle.DataAccess.Client.OracleDbType.Varchar2, 40).Value = strNumeroOrden;
                MDOgeneral.spComando.Parameters["pva_nroord"].Direction = ParameterDirection.Input;

                MDOgeneral.spComando.Parameters.Add("pdt_fecha", Oracle.DataAccess.Client.OracleDbType.Date, 40).Value = dtmFecha.Date;
                MDOgeneral.spComando.Parameters["pdt_fecha"].Direction = ParameterDirection.Input;                

                //Output
                MDOgeneral.spComando.Parameters.Add("pva_result", Oracle.DataAccess.Client.OracleDbType.Varchar2, 2000).Direction = ParameterDirection.Output;
                MDOgeneral.spComando.Parameters.Add("pva_errusu", Oracle.DataAccess.Client.OracleDbType.Varchar2, 2000).Direction = ParameterDirection.Output;
                MDOgeneral.spComando.ExecuteNonQuery();
                string c = MDOgeneral.spComando.Parameters["pva_errusu"].Value.ToString();

                msn.texto = "Se grabo la reparación recibida de planta.";
                msn.tipo = true;

                listado.RemoveAt(numIndex);
                lisdeplanta.Remove(seldeplanta);

                int numContador = 0;
                List<VMDePlanta> all = (from lis in listado select new VMDePlanta(lis)).ToList();
                foreach (VMDePlanta xx in all)
                {
                    numContador = numContador + 1;
                    xx.logSeleccionado = false;
                }
                lisdeplanta.Clear();
                lisdeplanta = new ObservableCollection<VMDePlanta>(all);

                strNumeroOrden = null;
                limpiar();
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        void limpiar()
        {
            try
            {
                strNumeroReparacion = null;
                numConsecutivo = 0;
                strCodigoCliente = null;
                strNombreCliente = null;
                strTipo = null;
                strReferencia = null;
                strNombreReferencia = null;
                strColor = null;
                strNombreColor = null;
                strTalla = null;
                strTipo = null;
                dtmFechaRecibido = Convert.ToDateTime("01/01/1900").Date;
                strDaño1 = null;
                strDaño2 = null;
                strDaño3 = null;
                strDaño4 = null;
                strDaño5 = null;
                strProceso1 = null;
                strProceso2 = null;
                strProceso3 = null;
                strProceso4 = null;
                strProceso5 = null;
                strObservaciones = null;
                if (visorFotoReferencia != null)
                {
                    if (visorFotoReferencia.strCodigo != null)
                    { 
                        visorFotoReferencia.strCodigo = "";
                        visorFotoReferencia.strColor = "";
                        base.OnPropertyChanged("visorFotoReferencia");
                    }
                }
                dtmFecha = DateTime.Now.Date;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        void imprimir()
        {
            try
            {

                DataTable dtEncabezado = new DataTable("dtEncabezado");
                DataRow drEncabezado = dtEncabezado.NewRow();
                      
                DataTable dtDetalle = new DataTable("dtDetalle");

                dtDetalle.Columns.Add("strOrden", System.Type.GetType("System.String"));
                dtDetalle.Columns.Add("strReparacion", System.Type.GetType("System.String"));
                dtDetalle.Columns.Add("strCodigoCliente", System.Type.GetType("System.String"));
                dtDetalle.Columns.Add("strNombreCliente", System.Type.GetType("System.String"));
                dtDetalle.Columns.Add("strReferencia", System.Type.GetType("System.String"));
                dtDetalle.Columns.Add("strNombreReferencia", System.Type.GetType("System.String"));
                dtDetalle.Columns.Add("strColor", System.Type.GetType("System.String"));
                dtDetalle.Columns.Add("strNombreColor", System.Type.GetType("System.String"));
                dtDetalle.Columns.Add("strTalla", System.Type.GetType("System.String"));
                dtDetalle.Columns.Add("strFecha", System.Type.GetType("System.String"));
                dtDetalle.Columns.Add("strTipo", System.Type.GetType("System.String"));

                dtEncabezado.Columns.Add("strEmpresa");
                drEncabezado["strEmpresa"] = MDOgeneral.strEmpresaImprime;
                dtEncabezado.Rows.Add(drEncabezado);

                foreach (VMDePlanta xx in lisdeplanta)
                {
                    DataRow drDetalle = dtDetalle.NewRow();
                    drDetalle["strOrden"] = xx.strNumeroOrden;
                    drDetalle["strReparacion"] = xx.strNumeroReparacion;
                    drDetalle["strCodigoCliente"] = xx.strCodigoCliente;
                    drDetalle["strNombreCliente"] = xx.strNombreCliente;
                    drDetalle["strReferencia"] = xx.strReferencia;
                    drDetalle["strNombreReferencia"] = xx.strNombreReferencia;
                    drDetalle["strColor"] = xx.strColor;
                    drDetalle["strNombreColor"] = xx.strNombreColor;
                    drDetalle["strTalla"] = xx.strTalla;
                    drDetalle["strFecha"] = xx.dtmFechaRecibido.ToString("dd/MM/yyyy");
                    drDetalle["strTipo"] = xx.strTipo;

                    dtDetalle.Rows.Add(drDetalle);
                }

                DataSet ds = new DataSet("dsRecibirdePlanta");

                ds.Tables.Add(dtEncabezado);
                ds.Tables.Add(dtDetalle);

                produccion.reportes.Vista vista = new produccion.reportes.Vista { ds = ds, reporte = @"reportes\rptRecibirdePlanta.rpt" };

                vista.Show();

            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        void Salir(Object frmformulario)
        {
            ((Window)frmformulario).Close();
        }

        #endregion

        #region IDataErrorInfo Members

        string IDataErrorInfo.Error { get { return null; } }

        string IDataErrorInfo.this[string propertyName]
        {
            get { return this.GetValidationError(propertyName); }
        }

        #endregion

        #region Validation

        /// <summary>
        /// Returns true if this object has no validation errors.
        /// </summary>
        /// 

        public bool IsValid
        {
            get
            {
                foreach (string property in ValidatedProperties)
                    if (GetValidationError(property) != null)
                        return false;

                return true;
            }
        }

        static readonly string[] ValidatedProperties = 
        { 
            "strNumeroOrden",
            "strNumeroReparacion",
            "strCodigoCliente"
        };

        string GetValidationError(string propertyName)
        {
            string error = null;

            if (Array.IndexOf(ValidatedProperties, propertyName) < 0)
                return null;

            //&& CODCPT_NVP.Length==3
            switch (propertyName)
            {
                case "strNumeroOrden":
                    error = this.ValidateOrden();
                    break;
                case "strNumeroReparacion":
                    error = this.ValidateReparacion();
                    break;
                case "strCodigoCliente":
                    error = this.ValidateCliente();
                    break;
                default:
                    Debug.Fail("Unexpected property being validated on Customer: " + propertyName);
                    break;
            }
            return error;
        }

        string ValidateOrden()
        {
            try
            {
                if (strNumeroOrden != null)
                {
                    if (strNumeroOrden.Length < 5)
                        return "Numero de Orden errada o no existe.";
                    else
                        return null;
                }
                else
                    return "Debe ingresar el numero de una orden.";
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateReparacion()
        {
            try
            {
                if (strNumeroReparacion == null) { return "Falta ingresar el numero de la orden."; }
                else return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateCliente()
        {
            try
            {
                if (strCodigoCliente == null) { return "Falta ingresar el numero de la orden."; }
                else return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        #endregion
        
    }

    #region Vista-modelo
    public class VMDePlanta : ViewModelBase
    {

        #region Campos
        private MRecibirdePlanta _procesos = new MRecibirdePlanta();
        #endregion

        #region Constructor

        public VMDePlanta(MRecibirdePlanta procesos)
        {
            _procesos = procesos;
        }

        #endregion

        #region Propiedades

        public string strNumeroOrden
        {
            get { return _procesos.strNumeroOrden; }
            set { _procesos.strNumeroOrden = value; base.OnPropertyChanged("strNumeroOrden"); }
        }

        public string strNumeroReparacion
        {
            get { return _procesos.strNumeroReparacion; }
            set { _procesos.strNumeroReparacion = value; base.OnPropertyChanged("strNumeroReparacion"); }
        }

        public Int32 numConsecutivo
        {
            get { return _procesos.numConsecutivo; }
            set { _procesos.numConsecutivo = value; base.OnPropertyChanged("numConsecutivo"); }
        }

        public string strCodigoCliente
        {
            get { return _procesos.strCodigoCliente; }
            set { _procesos.strCodigoCliente = value; base.OnPropertyChanged("strCodigoCliente"); }
        }

        public string strNombreCliente
        {
            get { return _procesos.strNombreCliente; }
            set { _procesos.strNombreCliente = value; base.OnPropertyChanged("strNombreCliente"); }
        }

        public string strReferencia
        {
            get { return _procesos.strReferencia; }
            set { _procesos.strReferencia = value; base.OnPropertyChanged("strReferencia"); }
        }

        public string strNombreReferencia
        {
            get { return _procesos.strNombreReferencia; }
            set { _procesos.strNombreReferencia = value; base.OnPropertyChanged("strNombreReferencia"); }
        }

        public string strColor
        {
            get { return _procesos.strColor; }
            set { _procesos.strColor = value; base.OnPropertyChanged("strColor"); }
        }

        public string strNombreColor
        {
            get { return _procesos.strNombreColor; }
            set { _procesos.strNombreColor = value; base.OnPropertyChanged("strNombreColor"); }
        }

        public string strTalla
        {
            get { return _procesos.strTalla; }
            set { _procesos.strTalla = value; base.OnPropertyChanged("strTalla"); }
        }

        public DateTime dtmFechaRecibido
        {
            get { return _procesos.dtmFechaRecibido; }
            set { _procesos.dtmFechaRecibido = value; base.OnPropertyChanged("dtmFechaRecibido"); }
        }

        public string strTipo
        {
            get { return _procesos.strTipo; }
            set { _procesos.strTipo = value; base.OnPropertyChanged("strTipo"); }
        }

        public string strDaño1
        {
            get { return _procesos.strDaño1; }
            set { _procesos.strDaño1 = value; base.OnPropertyChanged("strDaño1"); }
        }

        public string strDaño2
        {
            get { return _procesos.strDaño2; }
            set { _procesos.strDaño2 = value; base.OnPropertyChanged("strDaño2"); }
        }

        public string strDaño3
        {
            get { return _procesos.strDaño3; }
            set { _procesos.strDaño3 = value; base.OnPropertyChanged("strDaño3"); }
        }

        public string strDaño4
        {
            get { return _procesos.strDaño4; }
            set { _procesos.strDaño4 = value; base.OnPropertyChanged("strDaño4"); }
        }

        public string strDaño5
        {
            get { return _procesos.strDaño5; }
            set { _procesos.strDaño5 = value; base.OnPropertyChanged("strDaño5"); }
        }

        public string strProceso1
        {
            get { return _procesos.strProceso1; }
            set { _procesos.strProceso1 = value; base.OnPropertyChanged("strProceso1"); }
        }

        public string strProceso2
        {
            get { return _procesos.strProceso2; }
            set { _procesos.strProceso2 = value; base.OnPropertyChanged("strProceso2"); }
        }

        public string strProceso3
        {
            get { return _procesos.strProceso3; }
            set { _procesos.strProceso3 = value; base.OnPropertyChanged("strProceso3"); }
        }

        public string strProceso4
        {
            get { return _procesos.strProceso4; }
            set { _procesos.strProceso4 = value; base.OnPropertyChanged("strProceso4"); }
        }

        public string strProceso5
        {
            get { return _procesos.strProceso5; }
            set { _procesos.strProceso5 = value; base.OnPropertyChanged("strProceso5"); }
        }

        public string strObservaciones
        {
            get { return _procesos.strObservaciones; }
            set { _procesos.strObservaciones = value; base.OnPropertyChanged("strObservaciones"); }
        }

        public Boolean logSeleccionado
        {
            get { return _procesos.logSeleccionado; }
            set { _procesos.logSeleccionado = value; base.OnPropertyChanged("logSeleccionado"); }
        }

        #endregion

        #region Metodos

        public MRecibirdePlanta getProcesos()
        {
            return _procesos;
        }

        #endregion

    }
    #endregion
}
